package com.bot.rf.sql;

import com.bot.rf.entity.BookInfo;
import com.bot.rf.excel.BookExcel;
import com.bot.rf.sql.util.LocalSqlUtil;
import com.bot.rf.sql.util.SqlServerUtil;
import com.bot.rf.util.FileUtil;

import java.util.ArrayList;
import java.util.List;

import static com.bot.rf.util.MyLogger.LOGGER;

/**
 * @program: report-form-demo
 * @description: 数据库工具类
 * @author: zyy
 * @create: 2021-03-01 10:31
 **/
public class DatabaseUtil {

    private static boolean flag = true;

    //--------------------------- DatabaseUtil解释 start -----------------------------
    //
    // 1、sql.util 包下的 sqlUtil 类只负责增删改查，不添加业务逻辑（参数合不合法等）
    // 2、DatabaseUtil 类里添加业务方法，且在这处理业务逻辑
    // 3、LocalSqlUtil 本地 BookInfo.db 的数据库方法 ——> 只查书名、索书号、馆藏状态
    // 4、其他sqlUtil  用户远程数据库的操作类 ——> 更新本地db库、查询图书正确位置
    //                                         上传盘点位置
    //
    //--------------------------- DatabaseUtil解释  end  -----------------------------

    /**
     * 查询本地图书
     * @param tagId
     * @return
     */
    public static BookInfo queryLocalBookInfo(String tagId){
        return LocalSqlUtil.queryBook(tagId);
    }

    /**
     * 更新远程仓库图书
     */
    public static void updateLocation(List<BookExcel> list){
        List<BookExcel> result = new ArrayList<>();
        for (BookExcel b:list) {
            if (b.getBarcode().isEmpty() || b.getTagId().isEmpty() || b.getShelf().isEmpty()){
                continue;
            }
            result.add(b);
        }
        if (flag){
            LOGGER.info("更新远程数据库，共更新 " + result.size() + "条数据");
            SqlServerUtil.batchUpdateBookInfo(result);
        }else{

        }
    }


}
